package edu.mercer.sse.configuration;

import java.util.Map;

/**
 * Application Configuration Properties.<p>
 * 
 * Generic K - key for retrieval of property value.<p> 
 * 
 * Generic J - value of setting as parsed from configuration.<p>
 *
 * @see Configuration
 */

public interface AppProperties<K,J> 
{
	/**
	 * Retrieve a property value.<p>
	 * 
	 * @param property - Generic K representing key for property value 
	 * 	retrieval
	 * 
	 * @return - Generic J representing immutable property value
	 */
	
	J get( K propertyName );

	/**
	 * Retrieve property names and Values.<p>
	 * 
	 * Recommend use of immutable collection if available; i.e., ImmutableMap.
	 * <p>
	 * 
	 * @return  Map&#60;F,E&#62; containing property names and values 
	 */
	
	Map<K,J> getItems();
	

}//interface
